Fix register corruption caused by c/s 9922.
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Wed, 17 May 2006 23:01:59 +0000 (00:01 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Wed, 17 May 2006 23:01:59 +0000 (00:01 +0100)
From: Tom Woller <thomas.woller@amd.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
xen/arch/x86/hvm/svm/svm.c

index c259efc9286014126d55e0bbf317c542bf6f9e57..3dfaf9c5b010b6dcfeb82ef037da841cd201f771 100644 (file)
@@ -546,7 +546,6 @@ static inline int svm_do_debugout(unsigned long exit_code)
     return 1;
 }
 
-
 void save_svm_cpu_user_regs(struct vcpu *v, struct cpu_user_regs *ctxt)
 {
     struct vmcb_struct *vmcb = v->arch.hvm_svm.vmcb;
@@ -577,8 +576,6 @@ void svm_store_cpu_user_regs(struct cpu_user_regs *regs, struct vcpu *v)
     regs->ds     = vmcb->ds.sel;
     regs->es     = vmcb->es.sel;
     regs->ss     = vmcb->ss.sel;
-    regs->fs     = vmcb->fs.sel;
-    regs->gs     = vmcb->gs.sel;
 }
 
 /* XXX Use svm_load_cpu_guest_regs instead */
@@ -594,12 +591,6 @@ void svm_load_cpu_user_regs(struct vcpu *v, struct cpu_user_regs *regs)
     vmcb->rflags   = regs->eflags;
     vmcb->cs.sel   = regs->cs;
     vmcb->rip      = regs->eip;
-
-    vmcb->ds.sel   = regs->ds;
-    vmcb->es.sel   = regs->es;
-    vmcb->fs.sel   = regs->fs;
-    vmcb->gs.sel   = regs->gs;
-
     if (regs->eflags & EF_TF)
         *intercepts |= EXCEPTION_BITMAP_DB;
     else